home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol059 / binomial.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-01-13  |  2.1 KB  |  38 lines

  1. 1   '               BINOMIAL DISTRIBUTION (one-tailed)
  2. 2   '               Copyright Tracy L. Gustafson, M.D.
  3. 3   '              Round Rock, Texas. Version 3.0, 1984
  4. 4  ON ERROR GOTO 5000:CHAIN MERGE "EPIMRG",5
  5. 22  DATA "BINOMIAL PROBABILITY DISTRIBUTION",18,35
  6. 30  PRINT TAB(8);"The binomial distribution provides a one-tailed exact test":PRINT "applicable when a dichotomous variable has an equal probability of occurring":PRINT TAB(27);"in each of N trials.":PRINT:AR=9:AC=56
  7. 35  PRINT TAB(27);"Enter the number of trials:"
  8. 40  LOCATE 9,56:INPUT "",XN:IF INT(XN)=XN THEN NT=XN ELSE GOSUB 165:GOTO 40
  9. 45  PRINT:PRINT TAB(11);"Enter probability of success on each trial:"
  10. 50  LOCATE 11,56:INPUT "",PS:IF ABS(PS-0.5)>0.5 THEN LOCATE 25,10:PRINT "Probability should be fraction between 0 and 1";:AR=11:GOSUB 170:GOTO 50
  11. 55  PRINT:PRINT TAB(15);"Enter the number of successes observed:"
  12. 60  LOCATE 13,56:INPUT "",XN:IF INT(XN)=XN THEN NO=XN ELSE AR=13:GOSUB 165:GOTO 60
  13. 65  COLOR 23:LOCATE 17,25:PRINT "CALCULATING PROBABILITY"
  14. 70  IF NO>INT(PS*NT) THEN AF=1:PS=1-PS:CO=NT-NO ELSE AF=0:CO=NO
  15. 75  QS=1-PS:F=1:LQ=LOG(QS):LP=LOG(PS):P=EXP(NT*LQ)
  16. 80  FOR T=1 TO CO:FZ=NT-T:S=T*LP+FZ*LQ
  17. 85  IF F>1E+35 OR S<-80 THEN F=LOG(F):GOTO 95
  18. 90  F=F*(FZ+1)/T:P=P+F*EXP(S):NEXT T:GOTO 110
  19. 95  FOR Z=T TO CO:FZ=(NT-Z):S=Z*LP+FZ*LQ:F=F+LOG((FZ+1)/Z)
  20. 100  IF F+S>-86 THEN P=P+EXP(F+S)
  21. 105  NEXT Z
  22. 110  PLAY "MS O3 L64 G O2 GE L9 E"
  23. 115  LOCATE 17,1:COLOR CLR2,CLR1:PRINT TAB(8);"The probability of observing ";NO;" or ";:IF AF=1 THEN PRINT "more"; ELSE PRINT "fewer";
  24. 120  PRINT " cases ";:GOSUB 155:PRINT TAB(79):COLOR CLR1,CLR2
  25. 125  IF PS=0.5 THEN P=P*2:PRINT TAB(20);"Two-tailed probability ";:GOSUB 155
  26. 130  IF NT*PS<10 OR NT*QS<10 OR P>0.05 THEN 145 ELSE P$=".#####"
  27. 135  PRINT:PRINT:PRINT TAB(15);"The observed proportion of successes is  ";:PRINT USING P$;NO/NT
  28. 140  PRINT TAB(8);"Confidence limits can be calculated as:  ";:PRINT USING P$;NO/NT;:PRINT " +/- Z * ";:PRINT USING P$;SQR(PS*QS/NT)
  29. 145  LOCATE 25,10:INPUT;"Do you want to perform another binomial calculation?    ",A$:IF A$="y" OR A$="Y" THEN 20
  30. 150  LOCATE 23,1:END
  31. 155  IF P<9.99E-07 THEN PRINT "< 10 (-6)"; ELSE IF P>0.95 THEN PRINT "> .95"; ELSE PRINT "= ";P;
  32. 160  RETURN
  33. 165  LOCATE 25,24:PRINT "Please enter integers only.";
  34. 170  BEEP:LOCATE AR,AC:PRINT "     ":RETURN
  35. 5000  BEEP:IF ERR<>53 AND ERR<>71 THEN 5010 ELSE LOCATE 10,10:PRINT "Please place EPISTAT in drive A: (or other default).":PRINT TAB(25);"Press any key to continue:"
  36. 5005  A$=INKEY$:IF A$="" THEN 5005 ELSE RESUME
  37. 5010  ON ERROR GOTO 0:END
  38.